/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tk.eigh.ksvg.component.filter;

import ksvg.core.SVGComponentBase;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFComponent;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
import tk.eigh.ksvg.types.SVGNumber;

/**
 *
 * @author nt
 */
@JSFComponent(name = "svg:SpotLight",
type = "tk.eigh.svg.SpotLight",
family = "filter.SpotLight",
clazz = "ksvg.filter.SpotLight",
tagClass = "ksvg.tags.filter.SpotLightTag",
defaultRendererType = "filter.SVGSpotLightRenderer")
public abstract class AbstractSpotLight extends SVGComponentBase {

    /**
     * x = "&lt;number&gt;"<br/> X location for the light source in the
     * coordinate system established by attribute ‘primitiveUnits’ on the
     * ‘filter’ element. If the attribute is not specified, then the effect is
     * as if a value of 0 were specified.<br/> Animatable: yes.
     */
    @JSFProperty
    public abstract SVGNumber getX();

    /**
     * y = "&lt;number&gt;" Y location for the light source in the coordinate
     * system established by attribute ‘primitiveUnits’ on the ‘filter’ element.
     * If the attribute is not specified, then the effect is as if a value of 0
     * were specified. Animatable: yes.
     */
    @JSFProperty
    public abstract SVGNumber getY();

    /**
     * z = "&lt;number&gt;"<br/> Z location for the light source in the
     * coordinate system established by attribute ‘primitiveUnits’ on the
     * ‘filter’ element, assuming that, in the initial coordinate system, the
     * positive Z-axis comes out towards the person viewing the content and
     * assuming that one unit along the Z-axis equals one unit in X and Y. If
     * the attribute is not specified, then the effect is as if a value of 0
     * were specified.<br/> Animatable: yes.
     */
    @JSFProperty
    public abstract SVGNumber getZ();

    /**
     * pointsAtX = "&lt;number&gt;"<br/> X location in the coordinate system
     * established by attribute ‘primitiveUnits’ on the ‘filter’ element of the
     * point at which the light source is pointing. If the attribute is not
     * specified, then the effect is as if a value of 0 were specified.<br/>
     * Animatable: yes.
     */
    @JSFProperty
    public abstract SVGNumber getPointsAtX();

    /**
     * pointsAtY = "&lt;number&gt;"<br/> Y location in the coordinate system
     * established by attribute ‘primitiveUnits’ on the ‘filter’ element of the
     * point at which the light source is pointing. If the attribute is not
     * specified, then the effect is as if a value of 0 were specified.<br/>
     * Animatable: yes.
     */
    @JSFProperty
    public abstract SVGNumber getPointsAtY();

    /**
     * pointsAtZ = "&lt;number&gt;"<br/> Z location in the coordinate system
     * established by attribute ‘primitiveUnits’ on the ‘filter’ element of the
     * point at which the light source is pointing, assuming that, in the
     * initial coordinate system, the positive Z-axis comes out towards the
     * person viewing the content and assuming that one unit along the Z-axis
     * equals one unit in X and Y. If the attribute is not specified, then the
     * effect is as if a value of 0 were specified.<br/> Animatable: yes.
     */
    @JSFProperty
    public abstract SVGNumber getPointsAtZ();

    /**
     * specularExponent = "&lt;number&gt;"<br/> Exponent value controlling the
     * focus for the light source. If the attribute is not specified, then the
     * effect is as if a value of 1 were specified.<br/> Animatable: yes.
     */
    @JSFProperty
    public abstract SVGNumber getSpecularExponent();

    /**
     * limitingConeAngle = "&lt;number&gt;"<br/> A limiting cone which restricts
     * the region where the light is projected. No light is projected outside
     * the cone. ‘limitingConeAngle’ represents the angle in degrees between the
     * spot light axis (i.e. the axis between the light source and the point to
     * which it is pointing at) and the spot light cone. User agents should
     * apply a smoothing technique such as anti-aliasing at the boundary of the
     * cone. If no value is specified, then no limiting cone will be
     * applied.<br/> Animatable: yes.
     */
    @JSFProperty
    public abstract SVGNumber getLimitingConeAngle();
}